#pragma once

#include <AVUIHeaderedContentControl.h>

namespace AVUI {

class Expander : public HeaderedContentControl
{
public:
    Expander() { };
    ~Expander() { };

    DECLARE_ELEMENT(Expander, HeaderedContentControl);

    DECLARE_DEPENDENCY_PROPERTY(ExpandDirection);
    ExpandDirection::Enum get_ExpandDirection() { return (ExpandDirection::Enum)(AVUI::UnboxValue<int>(GetValue(get_ExpandDirectionProperty()))); }
    void set_ExpandDirection(ExpandDirection::Enum value) { SetValue(get_ExpandDirectionProperty(), AVUI::BoxValue<int>(value)); } 

    DECLARE_DEPENDENCY_PROPERTY(IsExpanded);
    bool get_IsExpanded() { return AVUI::UnboxValue<bool>(GetValue(get_IsExpandedProperty())); }
    void set_IsExpanded(bool value) { SetValue(get_IsExpandedProperty(), AVUI::BoxValue(value)); } 

private:
    static void StaticConstructor();
};

}; // namespace AVUI
